# {{ ansible_managed }}
[DEFAULT]
debug = {{ debug }}
use_journal = true
bind_host = {{ trove_service_host }}
bind_port = {{ trove_service_port }}
trove_api_workers={{ trove_api_workers }}
transport_url = {{ trove_oslomsg_rpc_transport }}://{% for host in trove_oslomsg_rpc_servers.split(',') %}{{ trove_oslomsg_rpc_userid }}:{{ trove_oslomsg_rpc_password }}@{{ host }}:{{ trove_oslomsg_rpc_port }}{% if not loop.last %},{% else %}/{{ trove_oslomsg_rpc_vhost }}{% endif %}{% endfor %}

{# There must be a blank line above or the following line will be appended to the previous. #}
control_exchange = {{ trove_control_exchange }}
enable_secure_rpc_messaging = {{ trove_enable_secure_rpc_messaging }}
inst_rpc_key_encr_key = {{ trove_inst_rpc_key_encr_key }}
taskmanager_rpc_encr_key = {{ trove_taskmanager_rpc_encr_key }}

db_api_implementation = "trove.db.sqlalchemy.api"
trove_auth_url = {{ trove_auth_url }}
os_region_name = {{ trove_service_region }}
network_label_regex = .*
#network_label_regex = .* //with neutron enabled
#ip_regex = ^(15.|123.)
#black_list_regex = ^10.0.0.
trove_volume_support = True
block_device_mapping = vdb
device_path = /dev/vdb
max_accepted_volume_size = 10
max_instances_per_tenant = 5
max_volumes_per_tenant = 100
max_backups_per_tenant = 5
volume_time_out=30

# Config options for rate limits
http_get_rate = 200
http_post_rate = 200
http_put_rate = 200
http_delete_rate = 200
http_mgmt_post_rate = 200

# Trove DNS
trove_dns_support = False
dns_account_id = 123456
dns_auth_url = http://127.0.0.1:5000/v2.0
dns_username = user
dns_passkey = password
dns_ttl = 3600
dns_domain_name = 'trove.com.'
dns_domain_id = 11111111-1111-1111-1111-111111111111
dns_driver = trove.dns.designate.driver.DesignateDriver
dns_instance_entry_factory = trove.dns.designate.driver.DesignateInstanceEntryFactory
dns_endpoint_url = http://127.0.0.1/v1/
dns_service_type = dns

# Nova
nova_proxy_admin_user = {{ trove_service_user_name }}
nova_proxy_admin_pass = {{ trove_service_password }}
nova_proxy_admin_tenant_name = {{ trove_service_project_name }}

# Neutron
network_driver = trove.network.neutron.NeutronDriver
default_neutron_networks = {{ trove_service_net_id }}

# Swift
swift_service_type = object-store

# Taskmanager queue name
taskmanager_queue = taskmanager

# Auth
admin_roles = admin
auth_strategy = keystone

# Guest related conf
agent_heartbeat_time = 10
agent_call_low_timeout = 5
agent_call_high_timeout = 150

# Reboot time out for instances
reboot_time_out = 60

# Trove api-paste file name
api_paste_config = api-paste.ini

[keystone_authtoken]
insecure = {{ keystone_service_internaluri_insecure | bool }}
auth_type = {{ trove_keystone_auth_plugin }}
auth_url = {{ keystone_service_adminuri }}
www_authenticate_uri = {{ keystone_service_internaluri }}
project_domain_id = {{ trove_service_project_domain_id }}
user_domain_id = {{ trove_service_user_domain_id }}
project_name = {{ trove_service_project_name }}
username = {{ trove_service_user_name }}
password = {{ trove_service_password }}
region_name = {{ keystone_service_region }}

memcached_servers = {{ memcached_servers }}
token_cache_time = 300

# if your memcached server is shared, use these settings to avoid cache poisoning
memcache_security_strategy = ENCRYPT
memcache_secret_key = {{ memcached_encryption_key }}

[database]
connection = "{{ trove_galera_connection_string }}"
idle_timeout = 3600

[profiler]
enabled = {{ trove_profiler_enabled }}
#trace_sqlalchemy = True

[ssl]
#cert_file = /path/to/server.crt
#key_file = /path/to/server.key
#optional:
#ca_file = /path/to/ca_file

[oslo_messaging_rabbit]
ssl = {{ trove_oslomsg_rpc_use_ssl }}

[oslo_messaging_notifications]
driver = {% if trove_ceilometer_enabled %}messagingv2{% else %}noop{% endif %}
transport_url = {{ trove_oslomsg_notify_transport }}://{% for host in trove_oslomsg_notify_servers.split(',') %}{{ trove_oslomsg_notify_userid }}:{{ trove_oslomsg_notify_password }}@{{ host }}:{{ trove_oslomsg_notify_port }}{% if not loop.last %},{% else %}/{{ trove_oslomsg_notify_vhost }}{% endif %}{% endfor %}

{% include 'include_db.j2' %}
